package com.niit.dao

import java.sql.Connection

import com.niit.utils.JDBCUtil

class BlackListDao {

  //根据user查询该用户是否存在黑名单中
  def selectBlackUserById(userid:String):Boolean={
    //1.获得MySQL连接
    val conn: Connection = JDBCUtil.getConnection
    //2.编写并执行SQL，以及传递相应参数
    val bool = JDBCUtil.isExist(conn,
      """
        |select * from black_list where userid = ?
        |
        |""".stripMargin,Array(userid))
    //3.关闭连接
    conn.close()
    //4.返回结果
    bool
  }

  //向黑名单表中添加数据，如果该用户已经在黑名单了，更新用户id
  def insertBlackList(userid:String): Unit ={
    //1.获得MySQL连接
    val conn: Connection = JDBCUtil.getConnection
    //2.编写并执行SQL ,以及传递参数
    JDBCUtil.executeUpdate(conn,
      """
        |insert into black_list(userid) values (?)
        | on duplicate key update userid = ?
        |""".stripMargin,Array(userid,userid))
    /*
    on duplicate key update userid = ?  如果该userid = 6 这条数据存在，则更新userid 。不存在就插入
     */
    //3.关闭连接
    conn.close()
}
  //向用户点击广告次数添加数，该数据存在则更新点击次数（之前点击次数+本次统计的点击次数）= 当天点击的总次数，不存在则插入
  def insertUserAdCount(day:String,user:String,ad:String,count:Int): Unit ={
    //1.获得MySQL连接
    val conn: Connection = JDBCUtil.getConnection
    //2.编写并执行SQL ,以及传递参数
    JDBCUtil.executeUpdate(conn,
      """
        |insert into user_ad_count(dt,userid,adid,count) values (?,?,?,?)
        | on duplicate key update count = count + ?
        |""".stripMargin,Array(day,user,ad,count,count))

    //3.关闭连接
    conn.close()
  }
  //查看某天 某用户 点击 某广告 是否 超过 规定的某次数  where  and
  def checkUserCount(day:String,user:String,ad:String,count:Int):Boolean={
    //1.获得MySQL连接
    val conn: Connection = JDBCUtil.getConnection
    val bool = JDBCUtil.isExist(conn,
      """
        | select * from user_ad_count where dt = ? and userid = ? and adid = ? and count >= ?
        |""".stripMargin,Array(day,user,ad,count))

    //3.关闭连接
    conn.close()
    bool
  }

}
